package com.pavco.caribbeanvisit.client;

import java.util.ArrayList;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.pavco.caribbeanvisit.client.objects.LoginInfo;
import com.pavco.caribbeanvisit.shared.models.Attraction;
import com.pavco.caribbeanvisit.shared.models.Country;

public interface RpcServiceAsync {
  void getFeedFeed(String url, AsyncCallback<String> callback);
  
  void getAllCountries(AsyncCallback<ArrayList<Country>> callback);
  void addCountry(Country country, AsyncCallback<Void> callback);
  void getCountry(String string, AsyncCallback<Country> callback);
  void getCountriesWithAttractionsWithTags(AsyncCallback<ArrayList<Country>> callback);
  
  void getAttraction(String attractionName, AsyncCallback<ArrayList<Attraction>> callback);
  void getAttractions(ArrayList<String> countries, ArrayList<String> tags, AsyncCallback<ArrayList<Attraction>> callback);
  
  void getAllTags(AsyncCallback<ArrayList<String>> callback);
  
  void login(String requestUri, AsyncCallback<LoginInfo> callback);
}
